Data traffic on a network is subject to traffic congestion from time to time. Further, often data traffic on a network is bursty and not uniform, and therefore subject to dynamic bottlenecks. Further, traffic distribution patterns and network buffer conditions change over time, sometimes sporadically, and therefore controlling congestion may be difficult because network traffic conditions can change dramatically even between routing updates.
Internet Protocol (IP) networks, are common examples of data networks, and include LANs, intranets, and internets. In a Mobile Ad Hoc Network (MANET), which may be implemented as an IP network, there may be additional constraints beyond the constraints that exist in a wired IP network. For example, a MANET may comprise a wireless LAN or WAN. With respect to Quality of Service (QoS), additional challenges in a MANET may include limited bandwidth to accommodate data throughput, a dynamic network topology caused by node mobility and an ad hoc or decentralized layout, and possibly reduced processing and memory capacity. These factors, may result in an increased probability of networking congestion, or network congestion at a particular node of the network, and jitter. Also, MANETs often face the challenge of delivering real-time services, including voice over IP (VoIP) and delivering video and multimedia data, with various QoS requirements, in addition to transmitting more traditional data. Data congestion on the network, or at a node of the network, such as at a queue of a network router, may result, for example, in queue overloading, which can cause data packets or datagrams to be discarded from the queue. Also, packets arriving later than a certain time period (as dictated by a maximum required latency QoS parameter) due to network congestion may be useless.
Network traffic engineering techniques for congestion prevention and control include DiffServ (Differential Service) systems, in which a different priority of service is used, for different packets, based on the QoS of different classes of packet types. Implementations of DiffServ provide, for example, that voice traffic, such as VoIP, where QoS parameters often mandate stricter maximum allowable latencies, are assigned to a different packet priority class than packets for other types of data. For example, a data packet representing VoIP may have a maximum allowable latency of 200 msec compared with 800 msec maximum allowable latency for packets encoding other types of data. DiffServ does not require a separate signaling protocol. In the DiffServ system, equal treatment is given to all data packets (or data flows) of the same priority class, and packets may be assigned to different priority classes based on the QoS parameters of the packets.
Also, the RED (Random Early Detection) data traffic congestion control policy provides gateways for congestion avoidance according to which packets waiting in a queue are discarded at random when a congestion condition in the network is detected. (Sally Floyd and Van Jacobson, “Random Early Detection Gateways for Congestion Avoidance”, August 1993 IEEE/ATM Transaction on Networking.)
However, there remains the problem that during extended periods of excess queue depth (queue length), large-scale failure of packets may result as the queue gets overloaded. As discussed, dynamic bottlenecking may sometime occur in a bursty data traffic environment or at unexpected times. In such cases, the failure rate of quality of service deliverability due to congestion may be sudden as the queue overloads. For example, FIG. 3 shows such a drop in the number of packets meeting QoS parameters as congestion increases (x-axis) in the DiffServ environment. Maximum allowed latency is an example of such a QoS parameter.
There is a need therefore for a method and system that overcomes these problems by decreasing the number (or percentage) of packets not meeting QoS parameters, such as latency, as congestion increases, and achieves selective drop behaviors, such as more gradual packet failure rate as the queue depth or congestion increases, or concentration of packet drops into sessions that are most expensive to complete. Also, there is a need for a method and system that achieves a reduced number or percentage of data flows that do not meet QoS parameters.